]> dgit.raspbian.org Git - gnome-shell.git/commitdiff
st: Add getter/setters for (almost) all properties
authorFlorian Müllner <fmuellner@gnome.org>
Thu, 23 Jan 2025 18:26:36 +0000 (19:26 +0100)
committerMarge Bot <marge-bot@gnome.org>
Wed, 12 Feb 2025 13:11:11 +0000 (13:11 +0000)
Traditionally, getter/setter functions have been considered a
C convenience, and we therefore didn't bother to add them for
many properties that are only consumed from JS.

However now that gjs optimizes property accesses by calling the
appropriate getter/setter instead, it makes sense to add them.

Leave out ScrollView's [vh]scrollbar-policy properties, as they
have a combined `set_policy()` setter that is consistent with
GTK's ScrolledWindow.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3620>

16 files changed:
src/st/st-adjustment.c
src/st/st-adjustment.h
src/st/st-button.c
src/st/st-button.h
src/st/st-image-content.c
src/st/st-image-content.h
src/st/st-scroll-view-fade.c
src/st/st-scroll-view-fade.h
src/st/st-scroll-view.c
src/st/st-scroll-view.h
src/st/st-settings.c
src/st/st-settings.h
src/st/st-theme.c
src/st/st-theme.h
src/st/st-viewport.c
src/st/st-viewport.h

index 05384e879ba2251d06f4248e62b224c198fd0053..504d88c76cde5ad526935932bfe54c4ce1267bb5 100644 (file)
@@ -97,32 +97,16 @@ typedef struct _TransitionClosure
   gulong completed_id;
 } TransitionClosure;
 
-static void st_adjustment_set_lower          (StAdjustment *adjustment,
-                                              double        lower);
-static void st_adjustment_set_upper          (StAdjustment *adjustment,
-                                              double        upper);
-static void st_adjustment_set_step_increment (StAdjustment *adjustment,
-                                              double        step);
-static void st_adjustment_set_page_increment (StAdjustment *adjustment,
-                                              double        page);
-static void st_adjustment_set_page_size      (StAdjustment *adjustment,
-                                              double        size);
-
 static ClutterActor *
-st_adjustment_get_actor (ClutterAnimatable *animatable)
+animatable_get_actor (ClutterAnimatable *animatable)
 {
-  StAdjustment *adjustment = ST_ADJUSTMENT (animatable);
-  StAdjustmentPrivate *priv = st_adjustment_get_instance_private (adjustment);
-
-  g_warn_if_fail (priv->actor);
-
-  return priv->actor;
+  return st_adjustment_get_actor (ST_ADJUSTMENT (animatable));
 }
 
 static void
 animatable_iface_init (ClutterAnimatableInterface *iface)
 {
-  iface->get_actor = st_adjustment_get_actor;
+  iface->get_actor = animatable_get_actor;
 }
 
 static void
@@ -201,12 +185,40 @@ actor_destroyed (gpointer  user_data,
   g_object_notify_by_pspec (G_OBJECT (adj), props[PROP_ACTOR]);
 }
 
-static void
+/**
+ * st_adjustment_get_actor:
+ * @adjustment: a #StAdjustment
+ *
+ * Retrieves the actor used for transitions.
+ *
+ * Returns: (transfer none):
+ */
+ClutterActor *
+st_adjustment_get_actor (StAdjustment *adjustment)
+{
+  StAdjustmentPrivate *priv;
+
+  g_return_val_if_fail (ST_IS_ADJUSTMENT (adjustment), NULL);
+
+  priv = st_adjustment_get_instance_private (adjustment);
+  return priv->actor;
+}
+
+/**
+ * st_adjustment_set_actor:
+ * @adjustment: a #StAdjustment
+ * @actor: a #ClutterActor
+ *
+ * Sets the actor used for transitions.
+ */
+void
 st_adjustment_set_actor (StAdjustment *adj,
                          ClutterActor *actor)
 {
   StAdjustmentPrivate *priv;
 
+  g_return_if_fail (ST_IS_ADJUSTMENT (adj));
+
   priv = st_adjustment_get_instance_private (adj);
 
   if (priv->actor == actor)
@@ -562,6 +574,25 @@ st_adjustment_clamp_page (StAdjustment *adjustment,
     g_object_notify_by_pspec (G_OBJECT (adjustment), props[PROP_VALUE]);
 }
 
+/**
+ * st_adjustment_get_lower:
+ * @adjustment: a #StAdjustment
+ *
+ * Retrieves the minimum value of the adjustment.
+ *
+ * Returns: the minimum value
+ */
+double
+st_adjustment_get_lower (StAdjustment *adjustment)
+{
+  StAdjustmentPrivate *priv;
+
+  g_return_val_if_fail (ST_IS_ADJUSTMENT (adjustment), -1);
+
+  priv = st_adjustment_get_instance_private (adjustment);
+  return priv->lower;
+}
+
 /**
  * st_adjustment_set_lower:
  * @adjustment: a #StAdjustment
@@ -579,11 +610,15 @@ st_adjustment_clamp_page (StAdjustment *adjustment,
  * Alternatively, [method@St.Adjustment.set_values] can be used to compress
  * #GObject::notify and [signal@St.Adjustment::changed] emissions.
  */
-static void
+void
 st_adjustment_set_lower (StAdjustment *adjustment,
                          gdouble       lower)
 {
-  StAdjustmentPrivate *priv = st_adjustment_get_instance_private (adjustment);
+  StAdjustmentPrivate *priv;
+
+  g_return_if_fail (ST_IS_ADJUSTMENT (adjustment));
+
+  priv = st_adjustment_get_instance_private (adjustment);
 
   if (priv->lower != lower)
     {
@@ -597,6 +632,25 @@ st_adjustment_set_lower (StAdjustment *adjustment,
     }
 }
 
+/**
+ * st_adjustment_get_upper:
+ * @adjustment: a #StAdjustment
+ *
+ * Retrieves the maximum value of the adjustment.
+ *
+ * Returns: the maximum value
+ */
+double
+st_adjustment_get_upper (StAdjustment *adjustment)
+{
+  StAdjustmentPrivate *priv;
+
+  g_return_val_if_fail (ST_IS_ADJUSTMENT (adjustment), -1);
+
+  priv = st_adjustment_get_instance_private (adjustment);
+  return priv->upper;
+}
+
 /**
  * st_adjustment_set_upper:
  * @adjustment: a #StAdjustment
@@ -610,11 +664,15 @@ st_adjustment_set_lower (StAdjustment *adjustment,
  * See [method@St.Adjustment.set_lower] about how to compress multiple
  * signal emissions when setting multiple adjustment properties.
  */
-static void
+void
 st_adjustment_set_upper (StAdjustment *adjustment,
                          gdouble       upper)
 {
-  StAdjustmentPrivate *priv = st_adjustment_get_instance_private (adjustment);
+  StAdjustmentPrivate *priv;
+
+  g_return_if_fail (ST_IS_ADJUSTMENT (adjustment));
+
+  priv = st_adjustment_get_instance_private (adjustment);
 
   if (priv->upper != upper)
     {
@@ -628,6 +686,25 @@ st_adjustment_set_upper (StAdjustment *adjustment,
     }
 }
 
+/**
+ * st_adjustment_get_step_increment:
+ * @adjustment: a #StAdjustment
+ *
+ * Retrieves the step increment of the adjustment.
+ *
+ * Returns: the step increment
+ */
+double
+st_adjustment_get_step_increment (StAdjustment *adjustment)
+{
+  StAdjustmentPrivate *priv;
+
+  g_return_val_if_fail (ST_IS_ADJUSTMENT (adjustment), -1);
+
+  priv = st_adjustment_get_instance_private (adjustment);
+  return priv->step_increment;
+}
+
 /**
  * st_adjustment_set_step_increment:
  * @adjustment: a #StAdjustment
@@ -638,11 +715,15 @@ st_adjustment_set_upper (StAdjustment *adjustment,
  * See [method@St.Adjustment.set_lower] about how to compress multiple
  * signal emissions when setting multiple adjustment properties.
  */
-static void
+void
 st_adjustment_set_step_increment (StAdjustment *adjustment,
                                   gdouble       step)
 {
-  StAdjustmentPrivate *priv = st_adjustment_get_instance_private (adjustment);
+  StAdjustmentPrivate *priv;
+
+  g_return_if_fail (ST_IS_ADJUSTMENT (adjustment));
+
+  priv = st_adjustment_get_instance_private (adjustment);
 
   if (priv->step_increment != step)
     {
@@ -652,6 +733,25 @@ st_adjustment_set_step_increment (StAdjustment *adjustment,
     }
 }
 
+/**
+ * st_adjustment_get_page_increment:
+ * @adjustment: a #StAdjustment
+ *
+ * Retrieves the page increment of the adjustment.
+ *
+ * Returns: the page increment
+ */
+double
+st_adjustment_get_page_increment (StAdjustment *adjustment)
+{
+  StAdjustmentPrivate *priv;
+
+  g_return_val_if_fail (ST_IS_ADJUSTMENT (adjustment), -1);
+
+  priv = st_adjustment_get_instance_private (adjustment);
+  return priv->page_increment;
+}
+
 /**
  * st_adjustment_set_page_increment:
  * @adjustment: a #StAdjustment
@@ -662,11 +762,15 @@ st_adjustment_set_step_increment (StAdjustment *adjustment,
  * See [method@St.Adjustment.set_lower] about how to compress multiple
  * signal emissions when setting multiple adjustment properties.
  */
-static void
+void
 st_adjustment_set_page_increment (StAdjustment *adjustment,
                                   gdouble       page)
 {
-  StAdjustmentPrivate *priv = st_adjustment_get_instance_private (adjustment);
+  StAdjustmentPrivate *priv;
+
+  g_return_if_fail (ST_IS_ADJUSTMENT (adjustment));
+
+  priv = st_adjustment_get_instance_private (adjustment);
 
   if (priv->page_increment != page)
     {
@@ -676,6 +780,25 @@ st_adjustment_set_page_increment (StAdjustment *adjustment,
     }
 }
 
+/**
+ * st_adjustment_get_page_size:
+ * @adjustment: a #StAdjustment
+ *
+ * Retrieves the page size of the adjustment.
+ *
+ * Returns: the page size
+ */
+double
+st_adjustment_get_page_size (StAdjustment *adjustment)
+{
+  StAdjustmentPrivate *priv;
+
+  g_return_val_if_fail (ST_IS_ADJUSTMENT (adjustment), -1);
+
+  priv = st_adjustment_get_instance_private (adjustment);
+  return priv->page_size;
+}
+
 /**
  * st_adjustment_set_page_size:
  * @adjustment: a #StAdjustment
@@ -686,11 +809,15 @@ st_adjustment_set_page_increment (StAdjustment *adjustment,
  * See [method@St.Adjustment.set_lower] about how to compress multiple
  * signal emissions when setting multiple adjustment properties.
  */
-static void
+void
 st_adjustment_set_page_size (StAdjustment *adjustment,
                              gdouble       size)
 {
-  StAdjustmentPrivate *priv = st_adjustment_get_instance_private (adjustment);
+  StAdjustmentPrivate *priv;
+
+  g_return_if_fail (ST_IS_ADJUSTMENT (adjustment));
+
+  priv = st_adjustment_get_instance_private (adjustment);
 
   if (priv->page_size != size)
     {
index 68e7a330bd643f7537c216be38f03b4dc95a73e8..caa2ab4f0cf9137c680d8d84cb60d2c1ea4c2851 100644 (file)
@@ -57,6 +57,21 @@ StAdjustment *st_adjustment_new         (ClutterActor *actor,
 gdouble       st_adjustment_get_value   (StAdjustment *adjustment);
 void          st_adjustment_set_value   (StAdjustment *adjustment,
                                          gdouble       value);
+double        st_adjustment_get_lower   (StAdjustment *adjustment);
+void          st_adjustment_set_lower   (StAdjustment *adjustment,
+                                         gdouble       lower);
+double        st_adjustment_get_upper   (StAdjustment *adjustment);
+void          st_adjustment_set_upper   (StAdjustment *adjustment,
+                                         gdouble       upper);
+double        st_adjustment_get_step_increment (StAdjustment *adjustment);
+void          st_adjustment_set_step_increment (StAdjustment *adjustment,
+                                                gdouble       step);
+double        st_adjustment_get_page_increment (StAdjustment *adjustment);
+void          st_adjustment_set_page_increment (StAdjustment *adjustment,
+                                                gdouble       page);
+double        st_adjustment_get_page_size (StAdjustment *adjustment);
+void          st_adjustment_set_page_size (StAdjustment *adjustment,
+                                           gdouble       size);
 void          st_adjustment_clamp_page  (StAdjustment *adjustment,
                                          gdouble       lower,
                                          gdouble       upper);
@@ -86,4 +101,8 @@ void                st_adjustment_add_transition    (StAdjustment      *adjustme
 void                st_adjustment_remove_transition (StAdjustment      *adjustment,
                                                      const char        *name);
 
+ClutterActor * st_adjustment_get_actor (StAdjustment *adjustment);
+void           st_adjustment_set_actor (StAdjustment *adjustment,
+                                        ClutterActor *actor);
+
 G_END_DECLS
index d0e4caf37ce83111e98683e3743bfd9de51a9547..683af7f0abb520ba6de27c904813fc23dc988da9 100644 (file)
@@ -449,7 +449,7 @@ st_button_get_property (GObject    *gobject,
       g_value_set_boolean (value, priv->is_checked);
       break;
     case PROP_PRESSED:
-      g_value_set_boolean (value, priv->pressed != 0 || priv->press_sequence != NULL);
+      g_value_set_boolean (value, st_button_get_pressed (ST_BUTTON (gobject)));
       break;
 
 
@@ -879,6 +879,25 @@ st_button_set_checked (StButton *button,
   g_object_notify_by_pspec (G_OBJECT (button), props[PROP_CHECKED]);
 }
 
+/**
+ * st_button_get_pressed:
+ * @button: a #StButton
+ *
+ * Get the #StButton:pressed property of a #StButton
+ *
+ * Returns: %TRUE if the button is pressed, or %FALSE if not
+ */
+gboolean
+st_button_get_pressed (StButton *button)
+{
+  StButtonPrivate *priv;
+
+  g_return_val_if_fail (ST_IS_BUTTON (button), FALSE);
+
+  priv = st_button_get_instance_private (button);
+  return priv->pressed != 0 || priv->press_sequence != NULL;
+}
+
 /**
  * st_button_fake_release:
  * @button: an #StButton
index 74aa391e4f80aedbd31855b7eb54a94987be502f..11a4f513874d0dd45a25564869cca7f6c0be4fbd 100644 (file)
@@ -56,6 +56,7 @@ gboolean     st_button_get_toggle_mode (StButton     *button);
 void         st_button_set_checked     (StButton     *button,
                                         gboolean      checked);
 gboolean     st_button_get_checked     (StButton     *button);
+gboolean     st_button_get_pressed     (StButton     *button);
 
 void         st_button_fake_release    (StButton     *button);
 
index 97cca5f1ff0963b6151cc9873daf682368df93c7..8c47af3cd24579aa8393312ad09c8452a8f7954d 100644 (file)
@@ -37,10 +37,15 @@ struct _StImageContent
 enum
 {
   PROP_0,
+
   PROP_PREFERRED_WIDTH,
   PROP_PREFERRED_HEIGHT,
+
+  N_PROPS,
 };
 
+static GParamSpec *props[N_PROPS] = { NULL, };
+
 static void clutter_content_interface_init (ClutterContentInterface *iface);
 static void g_icon_interface_init (GIconIface *iface);
 static void g_loadable_icon_interface_init (GLoadableIconIface *iface);
@@ -103,11 +108,11 @@ st_image_content_set_property (GObject      *object,
   switch (prop_id)
     {
     case PROP_PREFERRED_WIDTH:
-      self->width = g_value_get_int (value);
+      st_image_content_set_preferred_width (self, g_value_get_int (value));
       break;
 
     case PROP_PREFERRED_HEIGHT:
-      self->height = g_value_get_int (value);
+      st_image_content_set_preferred_height (self, g_value_get_int (value));
       break;
 
     default:
@@ -129,7 +134,6 @@ st_image_content_finalize (GObject *gobject)
 static void
 st_image_content_class_init (StImageContentClass *klass)
 {
-  GParamSpec *pspec;
   GObjectClass *object_class = G_OBJECT_CLASS (klass);
 
   object_class->constructed = st_image_content_constructed;
@@ -137,15 +141,17 @@ st_image_content_class_init (StImageContentClass *klass)
   object_class->set_property = st_image_content_set_property;
   object_class->finalize = st_image_content_finalize;
 
-  pspec = g_param_spec_int ("preferred-width", NULL, NULL,
-                             -1, G_MAXINT, -1,
-                             G_PARAM_CONSTRUCT_ONLY | ST_PARAM_READWRITE);
-  g_object_class_install_property (object_class, PROP_PREFERRED_WIDTH, pspec);
+  props[PROP_PREFERRED_WIDTH] =
+    g_param_spec_int ("preferred-width", NULL, NULL,
+                      -1, G_MAXINT, -1,
+                      G_PARAM_CONSTRUCT_ONLY | ST_PARAM_READWRITE | G_PARAM_EXPLICIT_NOTIFY);
+
+  props[PROP_PREFERRED_HEIGHT] =
+    g_param_spec_int ("preferred-height", NULL, NULL,
+                      -1, G_MAXINT, -1,
+                      G_PARAM_CONSTRUCT_ONLY | ST_PARAM_READWRITE | G_PARAM_EXPLICIT_NOTIFY);
 
-  pspec = g_param_spec_int ("preferred-height", NULL, NULL,
-                             -1, G_MAXINT, -1,
-                             G_PARAM_CONSTRUCT_ONLY | ST_PARAM_READWRITE);
-  g_object_class_install_property (object_class, PROP_PREFERRED_HEIGHT, pspec);
+  g_object_class_install_properties (object_class, N_PROPS, props);
 }
 
 static gboolean
@@ -360,6 +366,48 @@ st_image_content_new_with_preferred_size (int width,
                        NULL);
 }
 
+void
+st_image_content_set_preferred_width (StImageContent *content,
+                                      int             width)
+{
+  g_return_if_fail (ST_IS_IMAGE_CONTENT (content));
+
+  if (content->width == width)
+    return;
+
+  content->width = width;
+  g_object_notify_by_pspec (G_OBJECT (content), props[PROP_PREFERRED_WIDTH]);
+}
+
+int
+st_image_content_get_preferred_width (StImageContent *content)
+{
+  g_return_val_if_fail (ST_IS_IMAGE_CONTENT (content), -1);
+
+  return content->width;
+}
+
+void
+st_image_content_set_preferred_height (StImageContent *content,
+                                       int             height)
+{
+  g_return_if_fail (ST_IS_IMAGE_CONTENT (content));
+
+  if (content->height == height)
+    return;
+
+  content->height = height;
+  g_object_notify_by_pspec (G_OBJECT (content), props[PROP_PREFERRED_HEIGHT]);
+}
+
+int
+st_image_content_get_preferred_height (StImageContent *content)
+{
+  g_return_val_if_fail (ST_IS_IMAGE_CONTENT (content), -1);
+
+  return content->height;
+}
+
 void
 st_image_content_set_is_symbolic (StImageContent *content,
                                   gboolean        is_symbolic)
index e8115f9afd8aec84a14e218c1ed88e268730afab..fbed7f3e8960c7e6c8344bec07274993bb021c86 100644 (file)
@@ -29,6 +29,14 @@ G_DECLARE_FINAL_TYPE (StImageContent, st_image_content,
 ClutterContent *st_image_content_new_with_preferred_size (int width,
                                                           int height);
 
+void st_image_content_set_preferred_width (StImageContent *content,
+                                           int             width);
+int  st_image_content_get_preferred_width (StImageContent *content);
+
+void st_image_content_set_preferred_height (StImageContent *content,
+                                            int             height);
+int  st_image_content_get_preferred_height (StImageContent *content);
+
 gboolean st_image_content_set_data (StImageContent  *content,
                                     CoglContext     *cogl_context,
                                     const guint8    *data,
@@ -47,4 +55,4 @@ gboolean st_image_content_set_bytes (StImageContent  *content,
                                      guint            row_stride,
                                      GError         **error);
 
-CoglTexture * st_image_content_get_texture (StImageContent *content);
\ No newline at end of file
+CoglTexture * st_image_content_get_texture (StImageContent *content);
index d666b7cb86919f85ddfe90b04d6cecee5d98e326..fbc5311d1b1870021c3cf4c7959222c8b90cc5fd 100644 (file)
@@ -253,10 +253,12 @@ st_scroll_view_fade_dispose (GObject *gobject)
   G_OBJECT_CLASS (st_scroll_view_fade_parent_class)->dispose (gobject);
 }
 
-static void
-st_scroll_view_set_fade_margins (StScrollViewFade *self,
-                                 ClutterMargin    *fade_margins)
+void
+st_scroll_view_fade_set_fade_margins (StScrollViewFade *self,
+                                      ClutterMargin    *fade_margins)
 {
+  g_return_if_fail (ST_IS_SCROLL_VIEW_FADE (self));
+
   if (self->fade_margins.left == fade_margins->left &&
       self->fade_margins.right == fade_margins->right &&
       self->fade_margins.top == fade_margins->top &&
@@ -271,10 +273,25 @@ st_scroll_view_set_fade_margins (StScrollViewFade *self,
   g_object_notify_by_pspec (G_OBJECT (self), props[PROP_FADE_MARGINS]);
 }
 
-static void
+/**
+ * st_scroll_view_fade_get_fade_margins:
+ *
+ * Returns: (transfer none): The fade margins
+ */
+ClutterMargin *
+st_scroll_view_fade_get_fade_margins (StScrollViewFade *self)
+{
+  g_return_val_if_fail (ST_IS_SCROLL_VIEW_FADE (self), NULL);
+
+  return &self->fade_margins;
+}
+
+void
 st_scroll_view_fade_set_fade_edges (StScrollViewFade *self,
                                     gboolean          fade_edges)
 {
+  g_return_if_fail (ST_IS_SCROLL_VIEW_FADE (self));
+
   if (self->fade_edges == fade_edges)
     return;
 
@@ -289,10 +306,20 @@ st_scroll_view_fade_set_fade_edges (StScrollViewFade *self,
   g_object_thaw_notify (G_OBJECT (self));
 }
 
-static void
+gboolean
+st_scroll_view_fade_get_fade_edges (StScrollViewFade *self)
+{
+  g_return_val_if_fail (ST_IS_SCROLL_VIEW_FADE (self), FALSE);
+
+  return self->fade_edges;
+}
+
+void
 st_scroll_view_fade_set_extend_fade_area (StScrollViewFade *self,
                                           gboolean          extend_fade_area)
 {
+  g_return_if_fail (ST_IS_SCROLL_VIEW_FADE (self));
+
   if (self->extend_fade_area == extend_fade_area)
     return;
 
@@ -304,6 +331,14 @@ st_scroll_view_fade_set_extend_fade_area (StScrollViewFade *self,
   g_object_notify_by_pspec (G_OBJECT (self), props[PROP_EXTEND_FADE_AREA]);
 }
 
+gboolean
+st_scroll_view_fade_get_extend_fade_area (StScrollViewFade *self)
+{
+  g_return_val_if_fail (ST_IS_SCROLL_VIEW_FADE (self), FALSE);
+
+  return self->extend_fade_area;
+}
+
 static void
 st_scroll_view_fade_set_property (GObject *object,
                                   guint prop_id,
@@ -315,7 +350,7 @@ st_scroll_view_fade_set_property (GObject *object,
   switch (prop_id)
     {
     case PROP_FADE_MARGINS:
-      st_scroll_view_set_fade_margins (self, g_value_get_boxed (value));
+      st_scroll_view_fade_set_fade_margins (self, g_value_get_boxed (value));
       break;
     case PROP_FADE_EDGES:
       st_scroll_view_fade_set_fade_edges (self, g_value_get_boolean (value));
index 92d5c2450a3a1336ea833eb4cf6e2c9f2827967e..907b88cfe9943984fdd7d9651e01daec2500408d 100644 (file)
@@ -30,4 +30,16 @@ G_DECLARE_FINAL_TYPE (StScrollViewFade, st_scroll_view_fade,
 
 ClutterEffect *st_scroll_view_fade_new (void);
 
+void st_scroll_view_fade_set_fade_margins (StScrollViewFade *fade,
+                                           ClutterMargin    *margins);
+ClutterMargin * st_scroll_view_fade_get_fade_margins (StScrollViewFade *fade);
+
+void st_scroll_view_fade_set_fade_edges (StScrollViewFade *fade,
+                                         gboolean          fade_edges);
+gboolean st_scroll_view_fade_get_fade_edges (StScrollViewFade *fade);
+
+void st_scroll_view_fade_set_extend_fade_area (StScrollViewFade *fade,
+                                               gboolean          extend_fade_area);
+gboolean st_scroll_view_fade_get_extend_fade_area (StScrollViewFade *fade);
+
 G_END_DECLS
index dbd631df5b1f3287081ca03c38c3fe6f02be6a5b..b9ff0556748cd738a64ef19880c13c12a4b0a9b6 100644 (file)
@@ -1427,3 +1427,25 @@ st_scroll_view_get_bar_offsets (StScrollView *scroll,
                                           : 0.;
     }
 }
+
+gboolean
+st_scroll_view_get_hscrollbar_visible (StScrollView *scroll)
+{
+  StScrollViewPrivate *priv;
+
+  g_return_val_if_fail (ST_IS_SCROLL_VIEW (scroll), FALSE);
+
+  priv = st_scroll_view_get_instance_private (scroll);
+  return priv->hscrollbar_visible;
+}
+
+gboolean
+st_scroll_view_get_vscrollbar_visible (StScrollView *scroll)
+{
+  StScrollViewPrivate *priv;
+
+  g_return_val_if_fail (ST_IS_SCROLL_VIEW (scroll), FALSE);
+
+  priv = st_scroll_view_get_instance_private (scroll);
+  return priv->vscrollbar_visible;
+}
index 19bae3ebc1e710939de7bec07e80456a150cf740..32e1df0d66dea3f9ba1e5bca30470d28cbda4095 100644 (file)
@@ -56,6 +56,9 @@ void          st_scroll_view_set_child           (StScrollView *scroll,
 StAdjustment *st_scroll_view_get_hadjustment     (StScrollView *scroll);
 StAdjustment *st_scroll_view_get_vadjustment     (StScrollView *scroll);
 
+gboolean      st_scroll_view_get_hscrollbar_visible (StScrollView *scroll);
+gboolean      st_scroll_view_get_vscrollbar_visible (StScrollView *scroll);
+
 gfloat        st_scroll_view_get_column_size     (StScrollView *scroll);
 void          st_scroll_view_set_column_size     (StScrollView *scroll,
                                                   gfloat        column_size);
index 235a2b5bfa584b2e3583744d9457a16d9c21f36d..5fe1842ddd3d2243e866034a9203c2479211cf21 100644 (file)
@@ -82,10 +82,109 @@ G_DEFINE_TYPE (StSettings, st_settings, G_TYPE_OBJECT)
 
 #define EPSILON (1e-10)
 
-static void
+static gboolean
+get_enable_animations (StSettings *settings)
+{
+  if (settings->inhibit_animations_count > 0)
+    return FALSE;
+  else
+    return settings->enable_animations;
+}
+
+gboolean
+st_settings_get_enable_animations (StSettings *settings)
+{
+  g_return_val_if_fail (ST_IS_SETTINGS (settings), FALSE);
+
+  return get_enable_animations (settings);
+}
+
+gboolean
+st_settings_get_primary_paste (StSettings *settings)
+{
+  g_return_val_if_fail (ST_IS_SETTINGS (settings), FALSE);
+
+  return settings->primary_paste;
+}
+
+int
+st_settings_get_drag_threshold (StSettings *settings)
+{
+  g_return_val_if_fail (ST_IS_SETTINGS (settings), -1);
+
+  return settings->drag_threshold;
+}
+
+const char *
+st_settings_get_font_name (StSettings *settings)
+{
+  g_return_val_if_fail (ST_IS_SETTINGS (settings), NULL);
+
+  return settings->font_name;
+}
+
+const char *
+st_settings_get_gtk_icon_theme (StSettings *settings)
+{
+  g_return_val_if_fail (ST_IS_SETTINGS (settings), NULL);
+
+  return settings->gtk_icon_theme;
+}
+
+StSystemColorScheme
+st_settings_get_color_scheme (StSettings *settings)
+{
+  g_return_val_if_fail (ST_IS_SETTINGS (settings), ST_SYSTEM_COLOR_SCHEME_DEFAULT);
+
+  return settings->color_scheme;
+}
+
+StSystemAccentColor
+st_settings_get_accent_color (StSettings *settings)
+{
+  g_return_val_if_fail (ST_IS_SETTINGS (settings), ST_SYSTEM_ACCENT_COLOR_BLUE);
+
+  return settings->accent_color;
+}
+
+gboolean
+st_settings_get_high_contrast (StSettings *settings)
+{
+  g_return_val_if_fail (ST_IS_SETTINGS (settings), FALSE);
+
+  return settings->high_contrast;
+}
+
+gboolean
+st_settings_get_magnifier_active (StSettings *settings)
+{
+  g_return_val_if_fail (ST_IS_SETTINGS (settings), FALSE);
+
+  return settings->magnifier_active;
+}
+
+gboolean
+st_settings_get_disable_show_password (StSettings *settings)
+{
+  g_return_val_if_fail (ST_IS_SETTINGS (settings), FALSE);
+
+  return settings->disable_show_password;
+}
+
+double
+st_settings_get_slow_down_factor (StSettings *settings)
+{
+  g_return_val_if_fail (ST_SETTINGS (settings), -1);
+
+  return settings->slow_down_factor;
+}
+
+void
 st_settings_set_slow_down_factor (StSettings *settings,
                                   double      factor)
 {
+  g_return_if_fail (ST_IS_SETTINGS (settings));
+
   if (fabs (settings->slow_down_factor - factor) < EPSILON)
     return;
 
@@ -93,15 +192,6 @@ st_settings_set_slow_down_factor (StSettings *settings,
   g_object_notify_by_pspec (G_OBJECT (settings), props[PROP_SLOW_DOWN_FACTOR]);
 }
 
-static gboolean
-get_enable_animations (StSettings *settings)
-{
-  if (settings->inhibit_animations_count > 0)
-    return FALSE;
-  else
-    return settings->enable_animations;
-}
-
 void
 st_settings_inhibit_animations (StSettings *settings)
 {
index c871c4884b535696439d9bf5b303329fed345cf7..4c001889588f080f19f9b13bbd61bbb7e26606c2 100644 (file)
@@ -55,4 +55,21 @@ void st_settings_inhibit_animations (StSettings *settings);
 
 void st_settings_uninhibit_animations (StSettings *settings);
 
+gboolean st_settings_get_enable_animations (StSettings *settings);
+gboolean st_settings_get_primary_paste (StSettings *settings);
+int st_settings_get_drag_threshold (StSettings *settings);
+
+const char * st_settings_get_font_name (StSettings *settings);
+const char * st_settings_get_gtk_icon_theme (StSettings *settings);
+StSystemColorScheme st_settings_get_color_scheme (StSettings *settings);
+StSystemAccentColor st_settings_get_accent_color (StSettings *settings);
+gboolean st_settings_get_high_contrast (StSettings *settings);
+
+gboolean st_settings_get_magnifier_active (StSettings *settings);
+gboolean st_settings_get_disable_show_password (StSettings *settings);
+
+double st_settings_get_slow_down_factor (StSettings *settings);
+void st_settings_set_slow_down_factor (StSettings *settings,
+                                       double      factor);
+
 G_END_DECLS
index 9ad99e2b1ae479abe165e371e8003917293e803f..afff58db1309bf3d373454e1e5f63d260fdaafbf 100644 (file)
@@ -1097,3 +1097,42 @@ _st_theme_resolve_url (StTheme      *theme,
 
   return resource;
 }
+
+/**
+ * st_theme_get_application_stylesheet:
+ *
+ * Returns: (transfer none): the stylesheet
+ */
+GFile *
+st_theme_get_application_stylesheet (StTheme *theme)
+{
+  g_return_val_if_fail (ST_IS_THEME (theme), NULL);
+
+  return theme->application_stylesheet;
+}
+
+/**
+ * st_theme_get_theme_stylesheet:
+ *
+ * Returns: (transfer none): the stylesheet
+ */
+GFile *
+st_theme_get_theme_stylesheet (StTheme *theme)
+{
+  g_return_val_if_fail (ST_IS_THEME (theme), NULL);
+
+  return theme->theme_stylesheet;
+}
+
+/**
+ * st_theme_get_default_stylesheet:
+ *
+ * Returns: (transfer none): the stylesheet
+ */
+GFile *
+st_theme_get_default_stylesheet (StTheme *theme)
+{
+  g_return_val_if_fail (ST_IS_THEME (theme), NULL);
+
+  return theme->default_stylesheet;
+}
index f9d0ecca1e5487aab2214904d55ad4a70bc5e04a..9186334c176cc53f8d57b2d757d7b7e049c9fc5f 100644 (file)
@@ -46,4 +46,8 @@ gboolean  st_theme_load_stylesheet        (StTheme *theme, GFile *file, GError *
 void      st_theme_unload_stylesheet      (StTheme *theme, GFile *file);
 GSList   *st_theme_get_custom_stylesheets (StTheme *theme);
 
+GFile * st_theme_get_application_stylesheet (StTheme *theme);
+GFile * st_theme_get_theme_stylesheet (StTheme *theme);
+GFile * st_theme_get_default_stylesheet (StTheme *theme);
+
 G_END_DECLS
index 4f77b6c6c07f0afc72e57fbe874c7243d45d5ea7..259429546a957e8acd2e95c7a9dabebf645cb1ff 100644 (file)
@@ -174,12 +174,15 @@ st_viewport_scrollable_interface_init (StScrollableInterface *iface)
   iface->get_adjustments = scrollable_get_adjustments;
 }
 
-static void
+void
 st_viewport_set_clip_to_view (StViewport *viewport,
                               gboolean    clip_to_view)
 {
-  StViewportPrivate *priv =
-    st_viewport_get_instance_private (viewport);
+  StViewportPrivate *priv;
+
+  g_return_if_fail (ST_IS_VIEWPORT (viewport));
+
+  priv = st_viewport_get_instance_private (viewport);
 
   if (!!priv->clip_to_view != !!clip_to_view)
     {
@@ -189,6 +192,17 @@ st_viewport_set_clip_to_view (StViewport *viewport,
     }
 }
 
+gboolean
+st_viewport_get_clip_to_view (StViewport *viewport)
+{
+  StViewportPrivate *priv;
+
+  g_return_val_if_fail (ST_IS_VIEWPORT (viewport), FALSE);
+
+  priv = st_viewport_get_instance_private (viewport);
+  return priv->clip_to_view;
+}
+
 static void
 st_viewport_get_property (GObject    *object,
                           guint       property_id,
index 8f0b16b45e1415723ac73c9c58085e5bb862536a..2fed793e42f9ac5723a8da4038debaad4e862e41 100644 (file)
@@ -37,4 +37,8 @@ struct _StViewportClass
   StWidgetClass parent_class;
 };
 
+void st_viewport_set_clip_to_view (StViewport *viewport,
+                                   gboolean    clip_to_view);
+gboolean st_viewport_get_clip_to_view (StViewport *viewport);
+
 G_END_DECLS